package cn.middle.remote.user;

import cn.middle.remote.exchange.SignalFuture;
import cn.middle.remote.netty.NettyClient;

public abstract class UserClient extends NettyClient<UserListener>{
	
	/**
	 * 调用接口
	 * @param remoteClientId  目标客户端标识
	 * @param interfaceName  接口名称
	 * @param msgId   消息ID
	 * @param message  消息内容
	 */
	public abstract <T> SignalFuture call(int remoteClientId,String interfaceName,String msgId,T message);
	
	/**
	 * 获取园区信息
	 * @param msgId 园区标识 
	 * @param message 信息
	 */
	public abstract <T> void refreshEdge(String msgId,T message);
	
	/**
	 * 订阅事件
	 * @param msgId 消息ID  
	 * @param message 订阅信息
	 */
	public abstract <T> void subscribe(String msgId,T message);
	
}
